Server optimization is a complex task, especially in a system of multiple interdependent servers. Many configuration parameters are available allowing for a huge number of possible configuration combinations and this number increases dramatically when multiple machines are involved. Most systems do not provide a specification for the optimal server configuration for their tasks. Consequently, it is up to the system administrator to configure the server system. The optimal configuration is different for every system and the load on each system varies over time. For the system administrator to test each possible configuration with each possible load is not practical. Furthermore, even if an optimal configuration could be determined for each load, it would be an inefficient use of the system administrator's time to reconfigure the server system each time the load changed. The likely result is that one configuration is selected for all loads.
In view of the foregoing, it would be highly advantageous to provide a system that automatically determines the optimal configuration for each load and automatically reconfigures the system for the upcoming load.